package com.ruoyi.biz.service;

import java.util.List;
import com.ruoyi.biz.domain.BizStockyardTrainPosition;
import com.ruoyi.common.core.domain.model.LoginUser;

/**
 * 整备场火车位置信息Service接口
 * 
 * @author cc
 * @date 2025-11-11
 */
public interface IBizStockyardTrainPositionService 
{
    /**
     * 查询整备场火车位置信息
     * 
     * @param id 整备场火车位置信息主键
     * @return 整备场火车位置信息
     */
    public BizStockyardTrainPosition selectBizStockyardTrainPositionById(Long id);

    /**
     * 查询整备场火车位置信息列表
     * 
     * @param bizStockyardTrainPosition 整备场火车位置信息
     * @return 整备场火车位置信息集合
     */
    public List<BizStockyardTrainPosition> selectBizStockyardTrainPositionList(BizStockyardTrainPosition bizStockyardTrainPosition);

    /**
     * 新增整备场火车位置信息
     * 
     * @param bizStockyardTrainPosition 整备场火车位置信息
     * @return 结果
     */
    public int insertBizStockyardTrainPosition(BizStockyardTrainPosition bizStockyardTrainPosition);

    /**
     * 修改整备场火车位置信息
     * 
     * @param bizStockyardTrainPosition 整备场火车位置信息
     * @return 结果
     */
    public int updateBizStockyardTrainPosition(BizStockyardTrainPosition bizStockyardTrainPosition);

    /**
     * 批量删除整备场火车位置信息
     * 
     * @param ids 需要删除的整备场火车位置信息主键集合
     * @return 结果
     */
    public int deleteBizStockyardTrainPositionByIds(Long[] ids);

    /**
     * 删除整备场火车位置信息信息
     * 
     * @param id 整备场火车位置信息主键
     * @return 结果
     */
    public int deleteBizStockyardTrainPositionById(Long id);

    /**
     * 获取图纸上的所有小火车图标
     * @param drawingId
     * @return
     */
    public List<BizStockyardTrainPosition> getAllByDrawing(Long drawingId);

    /**
     * 放置火车
     * @param bizStockyardTrainPosition
     * @param user
     * @return
     */
    boolean enterTrain(BizStockyardTrainPosition bizStockyardTrainPosition, LoginUser user);

    /**
     * 火车离开
     * @param bizStockyardTrainPosition
     * @param user
     * @return
     */

    boolean exitTrain(BizStockyardTrainPosition bizStockyardTrainPosition, LoginUser user);
}
